package com.ruibang.glass.quality.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruibang.glass.common.domain.file.FileBusiness;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;
import java.util.List;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 质量半成品厚度信息
 * </p>
 *
 * @author wujie
 * @since 2024-03-11
 */

@ApiModel(value = "质量半成品厚度信息")
@TableName("g_quality_thickness")
@Data
public class QualityThickness {

    @ApiModelProperty(value = "厚度Id")
    @TableId(value = "thickness_id", type = IdType.ASSIGN_ID)
    private String thicknessId;
    @ApiModelProperty(value = "所属产线")
    private String productLine;
    @ApiModelProperty(value = "玻璃ID")
    private String glassId;
    @ApiModelProperty(value = "玻璃类型(1:成品,2:半成品)")
    private String glassType;
    @ApiModelProperty(value = "产品型号(G8.5,G8.6,G8.6+,G8.7)")
    private String glassModel;
    @ApiModelProperty(value = "检查规格")
    private String checkRule;
    @ApiModelProperty(value = "判定(合格:0,不合格:1)")
    private String decide;
    @ApiModelProperty(value = "确认人")
    private String userId;
    @ApiModelProperty(value = "记录日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime recordTime;
    @ApiModelProperty(value = "横切时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime transectTime;
    @ApiModelProperty(value = "班次(白班day,中班night)")
    private String team;
    @ApiModelProperty(value = "是否追溯(0:否,1:是)")
    private String isRetrospect;
    @ApiModelProperty(value = "近端平均")
    private Float nearAverage;
    @ApiModelProperty(value = "远端平均")
    private Float farAverage;
    @ApiModelProperty(value = "流速")
    private Float flowVelocity;
    @ApiModelProperty(value = "重量")
    private Float weight;
    @ApiModelProperty(value = "流量")
    private Float flow;
    @ApiModelProperty(value = "备注")
    private String remark;
    @ApiModelProperty(value = "非流向厚度极大值")
    private Float noFlowThicknessMax;
    @ApiModelProperty(value = "非流向厚度极小值")
    private Float noFlowThicknessMin;
    @ApiModelProperty(value = "非流向厚度平均值")
    private Float noFlowThicknessAverage;
    @ApiModelProperty(value = "流向厚度极大值")
    private Float flowThicknessMax;
    @ApiModelProperty(value = "流向厚度极小值")
    private Float flowThicknessMin;
    @ApiModelProperty(value = "流向厚度平均值")
    private Float flowThicknessAverage;
    @ApiModelProperty(value = "整版厚度极大值")
    private Float fullThicknessMax;
    @ApiModelProperty(value = "整版厚度极小值")
    private Float fullThicknessMin;
    @ApiModelProperty(value = "整版厚度平均值")
    private Float fullThicknessAverage;
    @ApiModelProperty(value = "厚度变化量非流向极差20mm")
    private Float changeNoFlowTwenty;
    @ApiModelProperty(value = "厚度变化量非流向极差100mm")
    private Float changeNoFlowOneHundred;
    @ApiModelProperty(value = "厚度变化量非流向极差300mm")
    private Float changeNoFlowThreeHundred;
    @ApiModelProperty(value = "厚度变化量非流向极差")
    private Float changeNoFlow;
    @ApiModelProperty(value = "厚度变化量流向极差")
    private Float changeFlow;
    @ApiModelProperty(value = "厚度变化量整版极差")
    private Float changeFull;

    @ApiModelProperty(value = "是否删除(1:是,0:否)")
    @TableLogic
    private String isDelete;

    @ApiModelProperty(value = "关联图片Id列表")
    @TableField(exist = false)
    private List<String> fileIds;

    @TableField(exist = false)
    @ApiModelProperty(value = "用于非流向单线厚度文件保存")
    private FileBusiness fileBusiness;

    @ApiModelProperty(value = "编辑时删除图片Id列表")
    @TableField(exist = false)
    private List<String> deleteFileIds;

    @ApiModelProperty(value = "产线名称")
    private String productLineName;

    @ApiModelProperty(value = "用户名称")
    @TableField(exist = false)
    private String userName;

    @ApiModelProperty(value = "规则信息")
    @TableField(exist = false)
    private SpecsConfig specsConfig;
}
